home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Purity
/
Purity #23 (1994-02-10)(Diesel)(DE)[WB].zip
/
Purity #23 (1994-02-10)(Diesel)(DE)[WB].adf
/
OS_2_Beispiele
/
AppIcon_DEMO.p
< prev
next >
Wrap
Text File
|
1994-01-20
|
2KB
|
86 lines
PROGRAM AppIcon_DEMO;
{ DEMO-Programm zur Verwendung von AppIcons }
{$opt q}
USES Intuition, Graphics;
{$incl"dos.lib","workbench/startup.h","wb.lib","icon.lib"}
CONST
APPICON_ID = 1;
VAR
AppPort : p_MsgPort; { Unser Message Port }
AppObject : p_DiskObject; { DiskObject für AppIcon }
AppMsg : p_AppMessage; { AppMessage }
MyAppIcon : p_AppIcon; { Unser AppIcon }
AppSig,Sig : LONG; { Signale }
ok : BOOLEAN; { Dummy }
PROCEDURE CleanUp;
BEGIN
{ AppIcon entfernen }
IF (MyAppIcon <> NIL) THEN ok := RemoveAppIcon(MyAppIcon);
{ DiskObject freigeben }
IF (AppObject <> NIL) THEN FreeDiskObject(AppObject);
{ Vom Port evtl. Messages entfernen }
IF (AppPort <> NIL) THEN
BEGIN
AppMsg := p_AppMessage(GetMsg(AppPort));
WHILE AppMsg <> NIL DO
BEGIN
ReplyMsg(p_Message(AppMsg));
AppMsg := p_AppMessage(GetMsg(AppPort));
END;
{ Port entfernen }
DeleteMsgPort(AppPort);
END;
HALT(0);
END;
BEGIN
{ Libraries öffnen }
OpenLib(IconBase,"icon.library",0);
OpenLib(WorkbenchBase,"workbench.library",0);
{ Default-DiskObject kriegen }
AppObject := GetDefDiskObject(WBPROJECT);
IF AppObject = NIL THEN CleanUp;
{ MessagePort kreieren }
AppPort := CreateMsgPort;
IF AppPort = NIL THEN CleanUp;
MyAppIcon := AddAppIconA(APPICON_ID,0,"Doppelklick-Mich !",AppPort,NIL,
AppObject,NIL);
IF MyAppIcon = NIL THEN CleanUp;
AppSig := LONG(1) SHL LONG(AppPort^.mp_SigBit);
ok := FALSE;
REPEAT
Sig := _Wait(AppSig OR SIGBREAKF_CTRL_C);
IF (sig AND AppSig) = AppSig THEN
BEGIN
AppMsg := p_AppMessage(GetMsg(AppPort));
WHILE AppMsg <> NIL DO
BEGIN
CASE AppMsg^.am_Type OF
MTYPE_APPICON:
BEGIN
{ Doppelklick ??? }
IF (AppMsg^.am_NumArgs = 0) AND (AppMsg^.am_ArgList=NIL) THEN
DisplayBeep(NIL);
END;
ELSE END;
ReplyMsg(p_Message(AppMsg));
AppMsg := p_AppMessage(GetMsg(AppPort));
END;
END ELSE ok := TRUE;
UNTIL ok;
CleanUp;
END.